﻿
using Microsoft.Xna.Framework;
namespace GameObjects
{
    public abstract class Character
    {
        /// <summary>
        /// Точность (будущее)
        /// </summary>
        public double Accuracy;
        /// <summary>
        /// Шанс критической атаки (будущее)
        /// </summary>
        public double CriticalChance;
        /// <summary>
        /// Базовый урон в секунду
        /// </summary>
        public int DamagePerSecond;
        /// <summary>
        /// Здоровье персонажа
        /// </summary>
        public int Health { get; set; }
        /// <summary>
        /// Защита
        /// </summary>
        public int Defence { get; set; }
        /// <summary>
        /// Поведение движения персонажа
        /// </summary>
        internal GameObjects.IMovable moveBehavior { get; set; }
        /// <summary>
        /// Координаты персонажа
        /// </summary>
        public Vector2 Position
        {
            get
            {
                return moveBehavior.Position;
            }
            set
            {
                moveBehavior.Position = value;
            }
        }
        /// <summary>
        /// Скорость передвижения
        /// </summary>
        public float Speed
        {
            get
            {
                return moveBehavior.Speed;
            }
            set
            {
                moveBehavior.Speed = value;
            }
        }

        public abstract void Fight(Character enemy);

        public void Move()
        {
            moveBehavior.Move();
        }
    }
}
